The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Testing distributed applications is often a time consuming and expensive process. In a cloud computing environment, testing often involves general stress tests, load and performance tests, functions test, data latency, browser performance, and compatibility. These tests lead to several challenges in a cloud computing environment. For example, merely writing tests to cover an adequate number of cases is costly and time consuming. Delivering services in a cloud environment and avoiding outages requires testing both inside and outside the application's datacenter. Likewise, simulating user activity from different geographic locations may only increase challenges to testing in a cloud computing environment.
Prior testing systems focused on randomized failures to test application functions. For example, Chaos Monkey is a testing service based on initiating random failures and is provided by Netflix of Los Gatos, Calif. This random testing service seeks out Auto Scaling Groups (ASGs) on the AWS platform and randomly terminates system node instances (i.e., virtual machines) in each group. Over time, this random approach may resolve most problems that a cloud-based application may face. However, random testing fails to account for some scenarios that are critical for proper application testing. In random testing systems, users cannot customize the type and timing of failure modes within their testing environment for particular intricacies of a cloud-provisioned application.